InputStream এবং String এর মাধ্যমে Response রিড করা

Java Technologies - অ্যাপাচি এইচটিটিপি ক্লায়েন্ট (Apache HTTP Client) Response হ্যান্ডেল করা |
154
154

Apache HTTP Client: InputStream এবং String এর মাধ্যমে Response রিড করা

Apache HTTP Client ব্যবহার করে HTTP request পাঠানোর পর, response হিসেবে ডেটা পাওয়া যায়। এই response ডেটা InputStream বা String হিসেবে পড়া যেতে পারে। InputStream সাধারণত বড় ডেটা, যেমন ফাইল বা বাইনারি ডেটা, পড়তে ব্যবহৃত হয়, আর String ব্যবহার করা হয় সাধারণত টেক্সট বা JSON ডেটা পড়ার জন্য।

Response রিড করার পদ্ধতি:

  1. InputStream ব্যবহার করে Response রিড করা:
    যখন response ডেটা একটি InputStream হিসেবে আসে, তখন আমরা EntityUtils বা সরাসরি InputStream ব্যবহার করে ডেটা পড়তে পারি।
  2. String ব্যবহার করে Response রিড করা:
    Response ডেটা সাধারণত JSON বা HTML ফরম্যাটে থাকে, যা সরাসরি String হিসেবে পড়া যায়।

কোড উদাহরণ:

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;

public class ApacheHttpClientResponseExample {
    public static void main(String[] args) {
        // HTTP ক্লায়েন্ট তৈরি
        try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
            
            // POST Request এর URL
            String url = "https://example.com/api";

            // HttpPost অবজেক্ট তৈরি
            HttpPost postRequest = new HttpPost(url);

            // JSON বা অন্য ধরনের ডেটা পাঠানোর জন্য কন্টেন্ট সেট করা
            String json = "{ \"name\": \"John\", \"age\": 30 }";
            StringEntity entity = new StringEntity(json);
            
            // Request Content-Type সেট করা
            postRequest.setEntity(entity);
            postRequest.setHeader("Accept", "application/json");
            postRequest.setHeader("Content-Type", "application/json");

            // POST Request পাঠানো এবং Response গ্রহণ করা
            HttpResponse response = httpClient.execute(postRequest);

            // Response থেকে Entity পাওয়া
            HttpEntity responseEntity = response.getEntity();

            // InputStream এর মাধ্যমে Response রিড করা
            InputStream inputStream = responseEntity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
            String line;
            StringBuilder responseBody = new StringBuilder();

            while ((line = reader.readLine()) != null) {
                responseBody.append(line);
            }

            System.out.println("Response Body (InputStream): " + responseBody.toString());

            // অথবা String হিসেবে Response রিড করা (EntityUtils ব্যবহার করে)
            String responseBodyString = EntityUtils.toString(responseEntity);
            System.out.println("Response Body (String): " + responseBodyString);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

গুরুত্বপূর্ণ বিষয়:

  1. InputStream এর মাধ্যমে Response রিড করা:
    • responseEntity.getContent() মেথড ব্যবহার করে response ডেটা একটি InputStream আকারে পাওয়া যায়।
    • BufferedReader এবং InputStreamReader ব্যবহার করে আমরা response এর প্রতিটি লাইন পড়তে পারি এবং StringBuilder ব্যবহার করে response body সংগ্রহ করতে পারি।
  2. String এর মাধ্যমে Response রিড করা:
    • EntityUtils.toString(responseEntity) ব্যবহার করে response ডেটাকে সরাসরি String আকারে পড়ে নেওয়া যায়। এটি সাধারণত JSON বা টেক্সট ফরম্যাটের response ডেটা পড়তে ব্যবহৃত হয়।

সারাংশ:

Apache HTTP Client ব্যবহার করে HTTP request পাঠানোর পর response ডেটা InputStream বা String এর মাধ্যমে পড়া যায়। InputStream বড় ডেটা বা বাইনারি ডেটা পড়তে ব্যবহৃত হয়, আর String সাধারণত JSON বা টেক্সট ডেটা পড়তে ব্যবহৃত হয়। EntityUtils ব্যবহার করে response কে String আকারে রিড করা খুবই সহজ, এবং InputStream ব্যবহার করে আপনি আরও নমনীয়ভাবে response ডেটা প্রক্রিয়া করতে পারেন।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion